<?php


namespace app\common\validate\virtual;


use yiqiniu\extend\validate\YqnValidate;

/**
 * 虚码活动规则
 * Class VirtualPromo
 * @package app\common\validate\virtual
 */
class VirtualPromoValid extends YqnValidate
{

    /**
     *  字段：'id'，    类型：'bigint',    是否为空：1,    说明：分类ID
     *  字段：'mer_id'，    类型：'character varying(20)',    是否为空：1,    说明：商户ID
     *  字段：'title'，    类型：'character varying(30)',    是否为空：1,    说明：商品名称
     *  字段：'product_type'，    类型：'smallint',    是否为空：1,    说明：规则类型 1 单商品,2联合商品
     *  字段：'union_rule'，    类型：'jsonb',    是否为空：,    说明：联合规则:{ sum: 0 ->合计数量, rule:-> 1: 全部满足 2,数量满足}
     *  字段：'begin_time'，    类型：'time(0) without time zone',    是否为空：1,    说明：开始时间
     *  字段：'end_time'，    类型：'time(0) without time zone',    是否为空：1,    说明：结束时间
     *  字段：'option'，    类型：'jsonb',    是否为空：1,    说明：活动配置 :{ get_info:1->获取信息,get_location:1->获取位置, small_ticket:0->小票
     * 1,需要 0 不需要, recheck_ticket:0 ->审核小票 1,需要 0 不需要 } 字段：'salesman'，    类型：'jsonb',    是否为空：1,    说明：导购配置:{
     * red_packet:0.3->红包金额 point:0->积分数 day_num:0->日限制 } 字段：'limit_num'，    类型：'integer',    是否为空：1,    说明：总限制数量
     * 字段：'scanned_num'，    类型：'integer',    是否为空：1,    说明：已扫码数 字段：'sum_red_packet'，    类型：'numeric(10,2)',    是否为空：1,
     *   说明：总红包总金额 字段：'sum_point'，    类型：'integer',    是否为空：1,    说明：总积分数 字段：'memo'，    类型：'character varying(500)',
     * 是否为空：1,    说明： 字段：'op_user'，    类型：'integer',    是否为空：1,    说明：操作人 字段：'create_at'，    类型：'timestamp(0) without
     * time zone',    是否为空：1,    说明：创建时间 字段：'update_at'，    类型：'timestamp(0) without time zone',    是否为空：,    说明：更新时间
     */

    /**
     *  验证规则
     */
    protected $rule = [
        'id' => 'require|number',
        'mer_id' => 'require',
        'title' => 'require',
        'product_type' => 'require|number',
        'begin_time' => 'require|date',
        'end_time' => 'require|date',
        'option' => 'require',
        'salesman' => 'require',
        'limit_num' => 'require|number',
        'scanned_num' => 'require|number',
        'sum_red_packet' => 'require|float',
        'sum_point' => 'require|number',
        'memo' => 'require',
        'op_user' => 'require|number',
        'create_at' => 'require|date',
        'update_at' => 'date',
        'product_code' => 'require',


    ];

    /**
     * 定义错误信息
     * 格式：'字段名.规则名'    =>    '错误信息'
     *
     * @var array
     */
    protected $message = [
        'id.require' => '分类ID不能为空',
        'id.number' => '分类ID只能为数字类型',
        'mer_id.require' => '商户ID不能为空',
        'title.require' => '名称不能为空',
        'title.chsAlphaNum' => '名称不支持特殊字符',
        'product_type.require' => '规则类型不能为空',
        'product_type.number' => '规则类型只能为数字类型',
        'begin_time.require' => '开始时间不能为空',
        'begin_time.date' => '开始时间只能为日期类型',
        'end_time.require' => '结束时间不能为空',
        'end_time.date' => '结束时间只能为日期类型',
        'option.require' => '活动配置不能为空',
        'salesman.require' => '导购配置:{不能为空',
        'limit_num.require' => '总限制数量不能为空',
        'limit_num.number' => '总限制数量只能为数字类型',
        'scanned_num.require' => '已扫码数不能为空',
        'scanned_num.number' => '已扫码数只能为数字类型',
        'sum_red_packet.require' => '总红包总金额不能为空',
        'sum_red_packet.float' => '总红包总金额只能为数字可带小数点',
        'sum_point.require' => '总积分数不能为空',
        'sum_point.number' => '总积分数只能为数字类型',
        'memo.require' => '不能为空',
        'op_user.require' => '操作人不能为空',
        'op_user.number' => '操作人只能为数字类型',
        'create_at.require' => '创建时间不能为空',
        'create_at.date' => '创建时间只能为日期类型',
        'update_at.date' => '更新时间只能为日期类型',
        'product_code.require' => '商品code不能为空',


    ];

    //验证场景
    protected $scene = [
        'add' => ['mer_id', 'title', 'product_type', 'option', 'salesman', 'op_user'],
        'prom_list' => ['vp_id', 'product_code'],
        'product_prom' => ['product_code'],
        'edit' => ["id", 'mer_id', 'title', 'product_type'],
        'edit_status' => ["id", 'status'],
    ];

}
